#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>

typedef int SLDataType;

typedef struct SLNode
{
	SLDataType data;
	struct SLNode* next;
}SLNode;



void SListPrint(SLNode* phead);

void SListPushBack(SLNode** pphead, SLDataType x);

void SListPushFront(SLNode** pphead, SLDataType x);

void SListPopBack(SLNode** pphead);

void SListPopFront(SLNode** pphead);



SLNode* SListFind(SLNode* pphead, SLDataType x);

void SListInsert(SLNode** pphead, SLNode* pos, SLDataType x);

void SListErase(SLNode** pphead, SLNode* pos);



void SListInsertAfter( SLNode* pos, SLDataType x);

void SListEraseAfter( SLNode* pos);

void SListDestroy(SLNode** pphead);